package com.shoeshopping.dao;

import java.util.List;

import org.hibernate.Query;

public interface BaseDao {
	
	public void save(Object entity);
	
	public void update(Object entity);
	
	public void delete(Object entity);
	
	public List find(final String hql);
	
	/**
	 * 带参数查询
	 * @param hql 查询的hql语句
	 * @param param 参数列表
	 */
	public List find(final String hql, final List<Object> param);
	
	/**
	 * 分页，排序查询
	 * @param hql 查询的hql语句
	 * @param param 参数列表
	 * @param page 页数
	 * @param rows 查询的行数
	 * @param sort 排序字段名
	 * @param order 升降序
	 */
	public List findWithPageAndSort(
			final String hql, final List<Object> param,
			final int page, final int rows,
			final String sort, final String order);
	
	/**
	 * 分页查询
	 * @param hql 查询的hql语句
	 * @param param 参数列表
	 * @param page 页数
	 * @param rows 查询的行数
	 * @param sort 排序字段名
	 * @param order 升降序
	 */
	public List findWithPage(
			final String hql, final List<Object> param,
			final int page, final int rows);
	
	/**
	 * 排序查询
	 * @param hql 查询的hql语句
	 * @param param 参数列表
	 * @param sort 排序字段名
	 * @param order 升降序
	 */
	public List findWithSort(
			final String hql, final List<Object> param,
			final String sort, final String order);
	
}
